『プロダクティブ・プログラマ -プログラマのための生産性向上術』
https://images-na.ssl-images-amazon.com/images/I/51xJPpFp-RL.jpg
目次
序文
まえがき
1章 はじめに
1.1 本書を書いた動機
1.1.1 URL補完機能
1.2 この本はどんな本なのか
1.2.1 I部:技法編(生産性向上の原理)
1.2.2 II部:実践編(生産性向上の哲学)
1.3 ここから先の読み方
I部 技法編
2章 加速−Acceleration
2.1 発射台−Launching Pad
2.1.1 ランチャー
2.1.2 Windowsの[スタート]メニューにランチャーを作成する
2.1.3 Mac OS X
2.1.4 Linuxでの起動
2.2 加速装置−Accelerators
2.2.1 OSレベルの加速装置
2.2.2 クリップボード
2.2.3 履歴の記録
2.2.4 元の場所に戻る
2.2.5 コマンドプロンプトへの即時切り替え
2.2.6 マウスよりキーボード
2.2.7 ナビゲーションより検索
2.3 マクロ−Macros
2.3.1 マクロレコーダ
2.3.2 キーマクロツール
2.4 2章のまとめ
3章 集中−Focus
3.1 気を散らす要因を排除する
3.1.1 気が散るのを防ぐコツ
3.1.2 不要な通知をオフにする
3.1.4 「沈黙の時間」を作る
3.2 ナビゲーションより検索
3.3 正規表現
3.4 ルートビュー−rooted view
3.4.1 Windowsのルートビュー
3.4.2 Mac OS Xのルートビュー
3.5 特殊なコマンドラインを作る
3.6 プロジェクトのファイルをショートカットを使って1箇所にまとめる
3.7 モニターを複数にする
3.8 仮想デスクトップで作業スペースを独立させる
3.9 3章のまとめ
4章 自動化−Automation
4.1 車輪の再発明をしない
4.2 ローカルへキャッシュする
4.3 Webサイトとのやりとりを自動化する
4.4 RSSフィードを活用する
4.5 ビルド以外の作業の自動化にAntを使う
4.6 日常的な作業の自動化にRakeを使う
4.7 Webアプリケーションの操作記録にSeleniumを利用する
4.8 例外情報抽出の自動化にBashを使用する
4.9 バッチファイルではなくWindows PowerShellを使う
4.10 Automatorを使って古いダウンロードファイルを削除する
4.11 Subversionをコマンドライン上で使いこなす
4.12 SQLファイルの分割ツールをRubyで作る
4.13 自動化すべきか否かの検討
4.14 「ヤク毛刈り」をしない
4.15 4章のまとめ
5章 正準化−Canonicality
5.1 DRYなバージョン管理
5.2 ビルドマシンの正準化
5.3 間接参照
5.3.1 Eclipseプラグインの管理
5.3.2 JEditマクロの同期
5.3.3 TextMateのバンドル
5.3.4 設定の正準化
5.4 仮想化の利用
5.5 インピーダンスミスマッチの解消
5.5.1 データマッピング
5.5.2 マイグレーション
5.6 DRYなドキュメント
5.6.1 SVN2Wiki
5.6.2 クラス図
5.6.3 データベーススキーマ
5.7 5章のまとめ
II部 実践編
6章 テスト駆動設計−Test-Driven Design
6.1 テストは徐々に複雑に
6.1.1 TDDでのユニットテスト
6.1.2 評価指標
6.1.3 設計変更が容易
6.2 コードカバレッジ
7章 静的解析−Static Analysis
7.1 バイトコード解析
7.2 ソース解析
7.3 Panopticodeによるコード評価
7.4 動的言語の解析
8章 オブジェクトを「良き市民」に−Good Citizenship
8.1 カプセル化が不十分
8.2 コンストラクタ
8.3 staticメソッド
8.4 オブジェクトの犯罪行為
9章 YAGNI
10章 古代の哲学者の教え
10.1 アリストテレスの本質的特性と偶発的特性
10.2 オッカムの剃刀
10.3 デメテルの掟
10.4 過去の教訓
11章 権威を疑う
11.1 怒れるサル
11.2 流れるようなインターフェイス
11.3 アンチオブジェクト
12章 メタプログラミング
12.1 Javaとリフレクション
12.2 GroovyでJavaをテストする
12.3 流れるようなインターフェイスを書く
12.4 メタプログラミングの利点
13章 Composed MedhodパターンとSLAP
13.1 Composed Methodパターンの実例
13.2 SLAP
14章 多言語プログラミング−Polyglot Programming
14.1 過去と現在
14.1.1 Javaの誕生と成長
14.1.2 Javaの暗黒面
14.2 今後、どこに、どのようにして向かうのか
14.2.1 現状の多言語プログラミング
14.2.2 プラットフォームはそのままで言語を変える
14.2.3 Jaskellの使用
14.3 Olaのピラミッド
15章 理想のツールを探す−Find the Perfect Tools
15.1 理想のテキストエディタを求めて
15.1.1 Neal Fordの「理想のエディタ」に必要な機能のリスト
15.2 理想のエディタの候補
15.3 仕事に合わせてツールを選択する
15.3.1 SQLファイルの分割ツールをテストに耐え得るものに書き直す
15.3.2 振る舞いをコードに留める
15.4 不適切なツールを拒否する
16章 まとめ:対話の継続
付録A コマンドラインを使いこなす
A.1 Cygwin
A.2 コマンドライン
A.2.1 ヘルプ